class Steps {
    types: any = {
    }

    type(type: string){
        console.log("Support type: " + type);
        let that = this;
        return function (target: object, propertyKey: string, descriptor: PropertyDescriptor) {
            that.types[type] = descriptor.value;
        }  
    }

}

class App {
    steps = new Steps()
}


let app = new App()

let type = app.steps.type

class StepsTest {

    @app.steps.type('click')
    click(steps:object){
        console.log('click')
    }

    @app.steps.type('alias')
    alias(){
        console.log('alias')
    }
}





